package org.dr.springmvcdemo.getparam.controller;

import org.apache.catalina.User;
import org.dr.springmvcdemo.getparam.entity.UserEntity;
import org.springframework.context.annotation.EnableMBeanExport;
import org.springframework.web.bind.annotation.*;

/**
 * 获取实体类中对象
 * 获取json对象@RequestBody
 * 获取RequestMapping路径中的参数@PathVariable
 */
@RestController
@RequestMapping("/user1")
public class UserController1 {
    /**
     * 获取实体类中对象
     */
    @RequestMapping("/u1")
    public Object user_1(UserEntity user) {

    return user;
    }

    /**
     * 获取json对象
     * @RequestBody注解，将请求体中的json数据映射到实体类中
     * @param user
     * @return
     */
    @RequestMapping("/u2")
    public UserEntity user_2(@RequestBody UserEntity user) {
        return user;
    }

    /**
     * 获取路径中的参数
     * @PathVariable注解，获取路径中的参数
     * @param name
     * @param password
     * @return
     */
    @RequestMapping("/u2/{name}/{password}")
    public Object user_3(@PathVariable String name,@PathVariable String password) {
        return "name:"+name+"\npassword:"+password;
    }

    /**
     * 当路径中参数与方法参数不同时，使用@PathVariable注解的value属性指定路径中的参数名
     * @param username 名称
     * @param password
     * @return
     */
    @RequestMapping("/u4/{name}/{password}")
    public Object user_4(@PathVariable("name") String username,@PathVariable String password) {
        return "username:"+username+"\npassword:"+password;
    }



}
